welo git mirrors
docs/source/git.rst dev_stamps (16ee7eff) Text, 22.46 KB
Tb4b4b4.. Tff7b72_git-main:
Tc9d1d9******************
Tc9d1d9Git Over Reticulum
Tc9d1d9******************
A set of utilities for distributed collaborative software development and publishing is included in RNS.
The system consists of two parts: The Ta5d6ff``Ta5d6ffrngitTa5d6ff`` node that hosts repositories, and the Ta5d6ff``Ta5d6ffgit-remote-rnsTa5d6ff`` helper that enables Git to communicate with rngit nodes. As soon as you have RNS installed on your system, you can transparently use Git with Reticulum-hosted repositories just like any other type of remote. Git over Reticulum uses URLs in the following format: Ta5d6ff``Ta5d6ffrns://DESTINATION_HASH/group/repoTa5d6ff``.
If you set a branch to track a Reticulum remote as the default upstream, you can simply use Ta5d6ff``Ta5d6ffgitTa5d6ff`` as you normally would; all commands work transparently and as expected.
Tb4b4b4.. Tff7b72warningTb4b4b4::
**The rngit program is a new addition to RNS!** This functionality was introduced in RNS 1.2.0. While great care has been taken to design a secure, but highly configurable and flexible permission system for allowing many users to interact with many different repositories on a single node, Ta5d6ff``Ta5d6ffrngitTa5d6ff`` has not been tested extensively in the wild! Be careful when hosting repositories, especially if they are public or semi-public.
Tc9d1d9The rngit Utility
Tc9d1d9=================
The Ta5d6ff``Ta5d6ffrngitTa5d6ff`` utility provides full Git repository hosting and interaction over Reticulum. It allows you to host and manage Git repositories and releases on Reticulum nodes, and to interact with remote repositories using standard Git commands through the Ta5d6ff``Ta5d6ffrns://Ta5d6ff`` URL scheme.
**Usage Examples**
Run Ta5d6ff``Ta5d6ffrngitTa5d6ff`` to start a repository node:
Tb4b4b4.. Tff7b72codeTb4b4b4:: Tff7b72text
$ rngit
[Notice] Starting Reticulum Git Node...
[Notice] Reticulum Git Node listening on <0d7334d411d00120cbad24edf355fdd2>
On the first run, Ta5d6ff``Ta5d6ffrngitTa5d6ff`` will create a default configuration file. You will then need to edit this, to point to your repository locations, configure access permissions, and perform any other necessary configuration.
View your identity and destination hashes:
Tb4b4b4.. Tff7b72codeTb4b4b4:: Tff7b72text
$ rngit --print-identity
Git Peer Identity : <959e10e5efc1bd9d97a4083babe51dea>
Repository Node Identity : <153cb870b4665b8c1c348896292b0bad>
Repositories Destination : <0d7334d411d00120cbad24edf355fdd2>
If the page node is enabled, the output will also include the Nomad Network destination hash.
You can run Ta5d6ff``Ta5d6ffrngitTa5d6ff`` in service mode with logging to file:
Tb4b4b4.. Tff7b72codeTb4b4b4:: Tff7b72text
$ rngit -s
Clone a repository from a remote Ta5d6ff``Ta5d6ffrngitTa5d6ff`` node:
Tb4b4b4.. Tff7b72codeTb4b4b4:: Tff7b72text
$ git clone rns://50824b711717f97c2fb1166ceddd5ea9/public/myrepo
Add a Reticulum remote to an existing repository:
Tb4b4b4.. Tff7b72codeTb4b4b4:: Tff7b72text
$ git remote add some_remote rns://50824b711717f97c2fb1166ceddd5ea9/public/myrepo
Push changes to the Reticulum remote:
Tb4b4b4.. Tff7b72codeTb4b4b4:: Tff7b72text
$ git push some_remote master
Get changes from a remote repository:
Tb4b4b4.. Tff7b72codeTb4b4b4:: Tff7b72text
$ git pull rns_remote master
**All Command-Line Options (rngit)**
Tb4b4b4.. Tff7b72codeTb4b4b4:: Tff7b72text
usage: rngit.py [-h] [--config CONFIG] [--rnsconfig RNSCONFIG] [-s] [-i] [-v]
[-q] [--version]
Reticulum Git Repository Node
options:
-h, --help show this help message and exit
--config CONFIG path to alternative config directory
--rnsconfig RNSCONFIG
path to alternative Reticulum config directory
-p, --print-identity print identity and destination info and exit
-s, --service rngit is running as a service and should log to file
-i, --interactive drop into interactive shell after initialisation
-v, --verbose increase verbosity
-q, --quiet decrease verbosity
--version show program's version number and exit
**All Command-Line Options (git-remote-rns)**
The Ta5d6ff``Ta5d6ffgit-remote-rnsTa5d6ff`` helper is automatically invoked by Git when interacting with Ta5d6ff``Ta5d6ffrns://Ta5d6ff`` URLs. It is not typically run directly by users, but accepts the following environment variables for configuration:
T79c0ff- Ta5d6ff``Ta5d6ffRNGIT_CONFIGTa5d6ff`` - Path to alternative client configuration directory
T79c0ff- Ta5d6ff``Ta5d6ffRNS_CONFIGTa5d6ff`` - Path to alternative Reticulum configuration directory
The client configuration file is located at Ta5d6ff``Ta5d6ff~/.rngit/client_configTa5d6ff`` and allows adjusting parameters such as the reference batch size for transfers.
Tc9d1d9Repository Structure
Tc9d1d9====================
The Ta5d6ff``Ta5d6ffrngitTa5d6ff`` node organizes repositories into groups. Each group is a directory containing bare Git repositories. The repository path format is Ta5d6ff``Ta5d6ffgroup_name/repo_nameTa5d6ff``. For example, a repository at Ta5d6ff``Ta5d6ff/var/git/public/myrepoTa5d6ff`` would be accessible as Ta5d6ff``Ta5d6ffpublic/myrepoTa5d6ff`` via the URL Ta5d6ff``Ta5d6ffrns://DESTINATION_HASH/public/myrepoTa5d6ff``.
**Configuration**
The Ta5d6ff``Ta5d6ffrngitTa5d6ff`` node configuration file is located at Ta5d6ff``Ta5d6ff~/.rngit/configTa5d6ff`` (or Ta5d6ff``Ta5d6ff/etc/rngit/configTa5d6ff`` for system-wide installations). The default configuration includes:
T79c0ff- Repository group paths defining where to find bare repositories
T79c0ff- Access permissions for groups and individual repositories
T79c0ff- Announce intervals for network visibility
T79c0ff- Optional statistics recording for repository activity
Access permissions can be configured at the group level in the config file, or per-repository using Ta5d6ff``Ta5d6ff.allowedTa5d6ff`` files. Permissions use the format Ta5d6ff``Ta5d6ffpermission:targetTa5d6ff`` where permission is Ta5d6ff``Ta5d6ffrTa5d6ff`` (read), Ta5d6ff``Ta5d6ffwTa5d6ff`` (write), Ta5d6ff``Ta5d6ffrwTa5d6ff`` (read/write), Ta5d6ff``Ta5d6ffcTa5d6ff`` (create) or Ta5d6ff``Ta5d6ffsTa5d6ff`` (stats) and target is Ta5d6ff``Ta5d6ffallTa5d6ff``, Ta5d6ff``Ta5d6ffnoneTa5d6ff``, or a specific identity hash.
The Ta5d6ff``Ta5d6ffsTa5d6ff`` (stats) permission allows viewing repository activity statistics, including views, fetches and pushes over time. To enable statistics recording, set Ta5d6ff``Ta5d6ffrecord_stats = yesTa5d6ff`` in the Ta5d6ff``Ta5d6ff[rngit]Ta5d6ff`` section of the configuration file. You can also exclude specific identities from statistics by adding their hashes to Ta5d6ff``Ta5d6ffstats_ignore_identitiesTa5d6ff``.
Repository-specific Ta5d6ff``Ta5d6ff.allowedTa5d6ff`` files can be static text files or executable scripts that output permission rules to stdout. A Ta5d6ff``Ta5d6ffgroup.allowedTa5d6ff`` file in a repository group directory applies to all repositories within that group.
Tc9d1d9Serving Pages Over Nomad Network
Tc9d1d9================================
In addition to providing Git repository access via the Git remote helper protocol, Ta5d6ff``Ta5d6ffrngitTa5d6ff`` can also run a Ta5d6ff`Nomad Network Tffd700<https://github.com/markqvist/nomadnet>Ta5d6ff`_ compatible page node. This allows users to browse repository information, view file contents, inspect commit history and access repository statistics through any Nomad Network client.
When enabled, the page node provides a complete interface to your repositories, with automatic Markdown to Micron conversion, syntax-highlighted code browsing, and detailed commit, diff and statistics views.
**Enabling the Git Page Node**
To enable the page node, add the following to your Ta5d6ff``Ta5d6ff~/.rngit/configTa5d6ff`` file:
Tb4b4b4.. Tff7b72codeTb4b4b4:: Tff7b72text
[pages]
serve_nomadnet = yes
When the page node is enabled, Ta5d6ff``Ta5d6ffrngitTa5d6ff`` will listen on a Nomad Network node destination in addition to the Git repository destination. You can view the destination hash by running:
Tb4b4b4.. Tff7b72codeTb4b4b4:: Tff7b72text
$ rngit --print-identity
Git Peer Identity : <959e10e5efc1bd9d97a4083babe51dea>
Repository Node Identity : <153cb870b4665b8c1c348896292b0bad>
Repositories Destination : <0d7334d411d00120cbad24edf355fdd2>
Nomad Network Destination : <50824b711717f97c2fb1166ceddd5ea9>
**Accessing Repository Pages**
Once the page node is running, you can access it from any Nomad Network client by connecting to the Nomad Network destination. The page node provides the following views:
T79c0ff- **Front Page** - Lists all repository groups accessible to your identity
T79c0ff- **Group Page** - Shows all repositories within a group
T79c0ff- **Repository Page** - Displays repository overview, description and README
T79c0ff- **Releases** - List of releases for the repository, with information and downloads
T79c0ff- **File Browser** - Browse directory trees and view and download file contents
T79c0ff- **Commits View** - View commit history with pagination
T79c0ff- **Commit Details** - Detailed commit information with file changes and diffs
T79c0ff- **Refs View** - List branches and tags
T79c0ff- **Statistics** - Activity charts showing views, fetches and pushes over time
All pages respect the same permission system used for Git access. If an identity does not have read access to a repository, they will not be able to view its pages.
Tc9d1d9Formatting & Syntax Highlighting
Tc9d1d9================================
If the Ta5d6ff``Ta5d6ffpygmentsTa5d6ff`` Python module is installed on your system, the page node will automatically apply syntax highlighting to code files. The highlighting supports a wide range of programming languages and uses a color theme optimized for terminal display.
To enable syntax highlighting, install pygments:
Tb4b4b4.. Tff7b72codeTb4b4b4:: Tff7b72text
pip install pygments
**Markdown & Micron Support**
README files and other Markdown documents are automatically converted to Micron markup for display in Nomad Network clients. You can also write your README files directly in Micron, in which case they will display and render as such in any Nomad Network client. The file browser also supports viewing both rendered and raw Markdown and Micron documents.
Code blocks in Markdown can include language hints for syntax highlighting:
Tb4b4b4.. Tff7b72codeTb4b4b4:: Tff7b72text
```python
def hello_world():
print("Hello, Reticulum!")
```
Tc9d1d9Customizing Templates
Tc9d1d9=====================
The page node uses a template system that allows complete customization of the generated pages. Templates are stored in the Ta5d6ff``Ta5d6ff~/.rngit/templates/Ta5d6ff`` directory as Micron files.
The following template files are supported:
T79c0ff- Ta5d6ff``Ta5d6ffbase.muTa5d6ff`` - Base template wrapping all pages
T79c0ff- Ta5d6ff``Ta5d6fffront.muTa5d6ff`` - Front page listing all groups
T79c0ff- Ta5d6ff``Ta5d6ffgroup.muTa5d6ff`` - Group page listing repositories
T79c0ff- Ta5d6ff``Ta5d6ffrepo.muTa5d6ff`` - Repository overview page
T79c0ff- Ta5d6ff``Ta5d6ffreleases.muTa5d6ff`` - Release list page
T79c0ff- Ta5d6ff``Ta5d6ffrelease.muTa5d6ff`` - Release details page
T79c0ff- Ta5d6ff``Ta5d6fftree.muTa5d6ff`` - File browser pages
T79c0ff- Ta5d6ff``Ta5d6ffblob.muTa5d6ff`` - File content display
T79c0ff- Ta5d6ff``Ta5d6ffcommits.muTa5d6ff`` - Commit history listing
T79c0ff- Ta5d6ff``Ta5d6ffcommit.muTa5d6ff`` - Individual commit detail page
T79c0ff- Ta5d6ff``Ta5d6ffrefs.muTa5d6ff`` - Branches and tags listing
T79c0ff- Ta5d6ff``Ta5d6ffstats.muTa5d6ff`` - Statistics page
Templates can include the following variables:
T79c0ff- Ta5d6ff``Ta5d6ff{PAGE_CONTENT}Ta5d6ff`` - The main content of the page (required)
T79c0ff- Ta5d6ff``Ta5d6ff{NODE_NAME}Ta5d6ff`` - The configured node name
T79c0ff- Ta5d6ff``Ta5d6ff{NAVIGATION}Ta5d6ff`` - Breadcrumb navigation links
T79c0ff- Ta5d6ff``Ta5d6ff{VERSION}Ta5d6ff`` - The rngit version number
T79c0ff- Ta5d6ff``Ta5d6ff{GEN_TIME}Ta5d6ff`` - Page generation time
**Dynamic Templates**
Templates can be made executable to generate dynamic content. If a template file has the executable bit set, it will be executed and its stdout used as the template content.
**Icon Sets**
By default, the page node uses Nerd Font icons. If you prefer simpler icons or your terminal does not support Nerd Fonts, you can enable Unicode icons instead:
Tb4b4b4.. Tff7b72codeTb4b4b4:: Tff7b72text
[pages]
serve_nomadnet = yes
unicode_icons = yes
**Repository Statistics**
When statistics recording is enabled (see the Ta5d6ff``Ta5d6ffrecord_statsTa5d6ff`` configuration option), the page node can display activity charts for each repository. The statistics page shows:
T79c0ff- Total and peak views, fetches and pushes
T79c0ff- Daily activity charts over a 90-day period
T79c0ff- Combined activity visualization
To view statistics, a user must have the Ta5d6ff``Ta5d6ffsTa5d6ff`` (stats) permission for the repository. See the Access Configuration section for details on setting permissions.
**Repository Thanks**
The page node includes a "Thanks" feature that allows users to express appreciation for a repository. On each repository page, a "Thanks" link is displayed showing the current thanks count. Clicking this link registers a thank you for the repository.
**Configuration Example**
A complete page node configuration might look like this:
Tb4b4b4.. Tff7b72codeTb4b4b4:: Tff7b72text
[rngit]
node_name = My Git Node
announce_interval = 360
record_stats = yes
[repositories]
public = /var/git/public
internal = /var/git/internal
[access]
public = r:all
internal = rw:9710b86ba12c42d1d8f30f74fe509286
[pages]
serve_nomadnet = yes
unicode_icons = no
Tc9d1d9Release Management
Tc9d1d9==================
In addition to hosting Git repositories, Ta5d6ff``Ta5d6ffrngitTa5d6ff`` provides a complete release management system. This allows you to publish versioned releases with associated artifacts, release notes and metadata. Releases are managed through the Ta5d6ff``Ta5d6ffrngit releaseTa5d6ff`` subcommand, and are also viewable through the Nomad Network page interface.
**The Release Workflow**
Creating a release involves specifying a Git tag and a directory containing build artifacts or other files to distribute. The Ta5d6ff``Ta5d6ffrngitTa5d6ff`` client will open your configured Ta5d6ff``Ta5d6ff$EDITORTa5d6ff`` to compose release notes, then upload all artifacts to the remote repository node.
To create a release, specify the tag name and path to artifacts:
Tb4b4b4.. Tff7b72codeTb4b4b4:: Tff7b72text
$ rngit release rns://50824b711717f97c2fb1166ceddd5ea9/public/myrepo create v1.2.0:./dist
This will:
T79c0ff1. Verify that the tag Ta5d6ff``Ta5d6ffv1.2.0Ta5d6ff`` exists in the repository
T79c0ff2. Open your editor to write release notes
T79c0ff3. Upload all files from the Ta5d6ff``Ta5d6ff./distTa5d6ff`` directory
T79c0ff4. Publish the release
If no Ta5d6ff``Ta5d6ff$EDITORTa5d6ff`` environment variable is set, Ta5d6ff``Ta5d6ffrngitTa5d6ff`` will try to use Ta5d6ff``Ta5d6ffnanoTa5d6ff``, Ta5d6ff``Ta5d6ffvimTa5d6ff`` or Ta5d6ff``Ta5d6ffviTa5d6ff``. The editor will show a template with instructions. Lines starting with Ta5d6ff``Ta5d6ff#Ta5d6ff`` will be ignored, and if the remaining content is empty after stripping comments, the release creation will be cancelled.
**Release Storage & Structure**
Releases are stored on the node in a directory named Ta5d6ff``Ta5d6ffrepo_name.releasesTa5d6ff`` next to the bare repository. Each release is a subdirectory containing:
T79c0ff- Ta5d6ff``Ta5d6ffMETATa5d6ff`` - Release metadata in ConfigObj format
T79c0ff- Ta5d6ff``Ta5d6ffRELEASE.mdTa5d6ff`` or Ta5d6ff``Ta5d6ffRELEASE.muTa5d6ff`` - Release notes
T79c0ff- Ta5d6ff``Ta5d6ffartifacts/Ta5d6ff`` - All uploaded files
T79c0ff- Ta5d6ff``Ta5d6ffTHANKSTa5d6ff`` - Appreciation count from users
**Listing Releases**
To view all releases for a repository:
Tb4b4b4.. Tff7b72codeTb4b4b4:: Tff7b72text
$ rngit release rns://50824b711717f97c2fb1166ceddd5ea9/public/myrepo list
Tag Status Created Objs Notes
------------------------------------------------------------------
v1.2.0 published 2025-01-15 14:32 3 Another release
v1.1.0 published 2024-12-03 09:15 2 Bug fix release
v1.0.0 published 2024-10-20 16:45 2 Initial release
**Viewing Release Details**
To see full information about a specific release:
Tb4b4b4.. Tff7b72codeTb4b4b4:: Tff7b72text
$ rngit release rns://50824b711717f97c2fb1166ceddd5ea9/public/myrepo view v1.2.0
Release : 0.9.2
Status : published
Created : 2026-05-04 23:53:09
Thanks : 5
Release Notes
=============
Version 1.2.0 release notes...
Artifacts (4)
=============
- myapp-1.2.0.tar.gz (1.5 MB)
- myapp-1.2.0.zip (1.6 MB)
- checksums.txt (256 B)
**Deleting Releases**
To remove a release:
Tb4b4b4.. Tff7b72codeTb4b4b4:: Tff7b72text
$ rngit release rns://50824b711717f97c2fb1166ceddd5ea9/public/myrepo delete v1.2.0
Are you sure you want to delete release 'v1.2.0'? [y/N]: y
Release v1.2.0 deleted
**Requirements & Validation**
T79c0ff- The specified tag must exist in the remote repository
T79c0ff- You must have Ta5d6ff``Ta5d6ffreleaseTa5d6ff`` permission for the repository
T79c0ff- The target artifacts directory must exist and contain at least one file
T79c0ff- Release notes cannot be empty
**Permissions**
Release management requires the Ta5d6ff``Ta5d6ffreleaseTa5d6ff`` permission, configured the same way as other repository permissions. In the config file or Ta5d6ff``Ta5d6ff.allowedTa5d6ff`` files, use Ta5d6ff``Ta5d6ffrel:targetTa5d6ff`` to grant release management rights:
Tb4b4b4.. Tff7b72codeTb4b4b4:: Tff7b72text
# In .allowed file or config
rel:all # Allow everyone
rel:9710b86... # Allow specific identity
rel:none # Deny everyone
**Nomad Network Interface**
When the Nomad Network page node is enabled, releases are displayed on a dedicated releases page for each repository. Each release is listed with its tag, creation date, artifact count and a preview of the release notes. Clicking a release shows the full details including formatted release notes and a listing of all artifacts with their sizes.
Only releases with Ta5d6ff``Ta5d6ffpublishedTa5d6ff`` status are visible through the Nomad Network interface. Draft releases (if supported in future implementations) would only be visible through the command-line interface.
**All Command-Line Options (rngit release)**
Tb4b4b4.. Tff7b72codeTb4b4b4:: Tff7b72text
usage: rngit release [-h] [--config CONFIG] [--rnsconfig RNSCONFIG]
[-i PATH] [-v] [-q] [--version]
[repository] [operation] [target]
Reticulum Git Release Manager
positional arguments:
repository URL of remote repository
operation list, view, create or delete
target tag and path to release artifacts directory
options:
-h, --help show this help message and exit
--config CONFIG path to alternative config directory
--rnsconfig RNSCONFIG
path to alternative Reticulum config directory
-i, --identity PATH path to release identity
-v, --verbose
-q, --quiet
--version show program's version number and exit
Tb4b4b4.. Tff7b72rawTb4b4b4:: latex
\newpage
Tc9d1d9Work Documents
Tc9d1d9==============
In addition to releases, Ta5d6ff``Ta5d6ffrngitTa5d6ff`` provides a work document management system for tracking tasks, investigations, issues and progress related to repositories. Work documents are stored as structured msgpack data and support threaded updates and comments.
**Listing Work Documents**
To view work documents for a repository:
Tb4b4b4.. Tff7b72codeTb4b4b4:: Tff7b72text
$ rngit work rns://50824b711717f97c2fb1166ceddd5ea9/public/myrepo list
Active documents
=================
ID Title Author Created Comments
---------------------------------------------------------------------------
1 Implemented new feature 9710b86ba12c4f2e… 2025-01-15 14:32 3
2 Fixed bug in parser 8f3a21c9d84e927b… 2025-01-14 09:15 1
Use Ta5d6ff``Ta5d6ff--scope completedTa5d6ff`` to view completed work documents, or Ta5d6ff``Ta5d6ff--scope allTa5d6ff`` to see both active and completed.
**Viewing a Work Document**
To view a specific work document with all its comments:
Tb4b4b4.. Tff7b72codeTb4b4b4:: Tff7b72text
$ rngit work rns://50824b711717f97c2fb1166ceddd5ea9/public/myrepo view -d 1
Implement new feature (active #1)
=================================
Author : 9710b86ba12c42d1d8f30f74fe509286
Status : active
Created : 2026-05-05 15:11:11
Edited : 2026-05-05 18:22:11
Format : markdown
Updates : 0
This work document tracks the implementation of the new feature...
Updates
=======
#1 by 9710b86ba12c42d1d8f30f74fe509286 at 2026-05-05 15:38:37
-------------------------------------------------------------
Initial analysis complete
**Creating Work Documents**
To create a new work document:
Tb4b4b4.. Tff7b72codeTb4b4b4:: Tff7b72text
$ rngit work rns://50824b711717f97c2fb1166ceddd5ea9/public/myrepo create --title "Investigate performance issue"
This will open your configured Ta5d6ff``Ta5d6ff$EDITORTa5d6ff`` to compose the document content. Save and exit to create the document, or save an empty document to cancel.
**Editing Work Documents**
To edit an existing work document:
Tb4b4b4.. Tff7b72codeTb4b4b4:: Tff7b72text
$ rngit work rns://50824b711717f97c2fb1166ceddd5ea9/public/myrepo edit -d 1
This fetches the current content, opens it in your editor, and sends any changes back to the node.
**Adding Comments**
To add an update to a work document:
Tb4b4b4.. Tff7b72codeTb4b4b4:: Tff7b72text
$ rngit work rns://50824b711717f97c2fb1166ceddd5ea9/public/myrepo update -d 1
This opens your editor to compose the update.
**Completing Work Documents**
To mark a work document as completed (moving it from Ta5d6ff``Ta5d6ffactiveTa5d6ff`` to Ta5d6ff``Ta5d6ffcompletedTa5d6ff``):
Tb4b4b4.. Tff7b72codeTb4b4b4:: Tff7b72text
$ rngit work rns://50824b711717f97c2fb1166ceddd5ea9/public/myrepo complete -d 1
Work document #1 completed
**Activating Work Documents**
To mark a work document as active (moving it from Ta5d6ff``Ta5d6ffcompletedTa5d6ff`` to Ta5d6ff``Ta5d6ffactiveTa5d6ff``):
Tb4b4b4.. Tff7b72codeTb4b4b4:: Tff7b72text
$ rngit work rns://50824b711717f97c2fb1166ceddd5ea9/public/myrepo activate -d 1
Work document #1 activated
**Deleting Work Documents**
To delete a work document and all its comments:
Tb4b4b4.. Tff7b72codeTb4b4b4:: Tff7b72text
$ rngit work rns://50824b711717f97c2fb1166ceddd5ea9/public/myrepo delete -id 1
Are you sure you want to delete active work document #1? [y/N]: y
Work document #1 deleted
**Permissions**
Users can view work documents and updates if the have Ta5d6ff``Ta5d6ffreadTa5d6ff`` permission for the repository. If users have Ta5d6ff``Ta5d6ffreadTa5d6ff`` and Ta5d6ff``Ta5d6ffinteractTa5d6ff``, they can also post updates/comments on existing work documents. Work document management requires having Ta5d6ff``Ta5d6ffwriteTa5d6ff`` and Ta5d6ff``Ta5d6ffinteractTa5d6ff`` permission to the repository. These permissions are configured the same way as any other repository permissions. In the config file or Ta5d6ff``Ta5d6ff.allowedTa5d6ff`` files, use Ta5d6ff``Ta5d6ffi:targetTa5d6ff`` to grant work document interaction rights:
Tb4b4b4.. Tff7b72codeTb4b4b4:: Tff7b72text
# In .allowed file or config
i:all # Allow everyone
i:9710b86... # Allow specific identity
i:none # Deny everyone
**Author Verification**
Users can only edit or delete work documents and updates they created. The author is cryptographically verified from the interacting link's Ta5d6ff``Ta5d6ffremote_identityTa5d6ff``.
**Storage Format**
Work documents are stored in a Ta5d6ff``Ta5d6ffrepo_name.workTa5d6ff`` directory next to the repository, containing:
T79c0ff- Ta5d6ff``Ta5d6ffactive/Ta5d6ff`` - Active work documents
T79c0ff- Ta5d6ff``Ta5d6ffcompleted/Ta5d6ff`` - Completed work documents
Each document is a numbered directory containing:
T79c0ff- Ta5d6ff``Ta5d6ffrootTa5d6ff`` - The work document content and metadata (msgpack format)
T79c0ff- Ta5d6ff``Ta5d6ffNTa5d6ff`` - Numbered comment files (msgpack format)
**Nomad Network Interface**
When the Nomad Network page node is enabled, work documents are viewable through the web interface. The work page lists all documents with their status, and clicking a document shows its full content and updates.
**All Command-Line Options (rngit work)**
Tb4b4b4.. Tff7b72codeTb4b4b4:: Tff7b72text
usage: rngit work [-h] [--config CONFIG] [--rnsconfig RNSCONFIG]
[-i PATH] [--scope SCOPE] [-t TITLE] [-d ID] [-v]
[-q] [--version]
[repository] [operation]
Reticulum Git Work Document Manager
positional arguments:
repository URL of remote repository
operation list, view, create, edit, delete, update or complete
options:
-h, --help show this help message and exit
--config CONFIG path to alternative config directory
--rnsconfig RNSCONFIG
path to alternative Reticulum config directory
-i, --identity PATH path to identity
--scope SCOPE document scope: active, completed or all
-t, --title TITLE document title for create
-d, --id ID document ID
-v, --verbose
-q, --quiet
--version show program's version number and exit
Served by rngit 1.4.2 - Generated in 0.03s